package me.yangxy.learning.dao;

import me.yangxy.learning.dao.model.BookItem;
import org.springframework.data.jpa.repository.JpaRepository;

import java.util.List;

/**
 * <p><a href="https://docs.spring.io/spring-data/jpa/docs/current/reference/html/">JPA官方文档</a></p>
 *
 *
 * Dao开发与使用原则如下：
 * <ol>
 *     <li>编写时均采用Hibernate+JPA模式，用来省略掉简单的CRUD查询，所以使用时，再不会出现性能瓶颈的情况下，尽量复用简单查询</li>
 *     <li>在简单CRUD无法满足功能/性能要求的情况下，优先参考官方的命名方式，创建查询</li>
 *     <li>如果官方命名方式也无法满足的时候，可以采用注解 {@link org.springframework.data.jpa.repository.Query} 的方式编写SQL（几乎无复用性，纯粹处理特定的业务场景）</li>
 * </ol>
 */
public interface BookDao extends JpaRepository<BookItem,Long> {



    public List<BookItem> findAllByPriceBetween(Integer minPrice, Integer maxPrice);


    //对于要完全进行自定义的复杂查询，显然需要通过其他的类来执行，不可能写在这个接口或者这个接口的实现类里了
}
